#include "amvirtentity.h"
#include <stdlib.h>
#include <QtOpenGL/qgl.h>

AMVirtualEntity::AMVirtualEntity()
{
    m_RotMatrix = (float *) malloc(sizeof(float) * 4);
}

void AMVirtualEntity::render() {
    glPushMatrix();
    glLoadIdentity();
    renderEnity();
    glPopMatrix();
}

void AMVirtualEntity::rotate(float deg, float x, float y, float z) {
    glPushMatrix();
    glLoadIdentity();
    glRotatef(deg, x, y, z);
    glMultMatrixf(m_RotMatrix);
    glGetFloatv(GL_MODELVIEW_MATRIX, m_RotMatrix);
    glPopMatrix();
}

void AMVirtualEntity::translate(float x, float y, float z) {
    glPushMatrix();
    glLoadIdentity();
    glTranslatef(x, y, z);
    glMultMatrixf(m_TrnMatrix);
    glGetFloatv(GL_MODELVIEW_MATRIX, m_TrnMatrix);
    glPopMatrix();
}

void AMVirtualEntity::scale(float x, float y, float z) {
    glPushMatrix();
    glLoadIdentity();
    glScalef(x, y, z);
    glMultMatrixf(m_SclMatrix);
    glGetFloatv(GL_MODELVIEW_MATRIX, m_SclMatrix);
    glPopMatrix();
}
